﻿using System;
using System.Collections.Generic;
using System.Linq;

using PortalIntranet.DatabaseComponents;
using PortalIntranet.DatabaseComponents.Administracao;

namespace PortalIntranet.BusinessComponents.Administracao
{
	public class WebPagesBll
	{
		public static WebPage Obter(int id)
		{
			using (var contexto = new IntranetContexto())
			{
				return contexto.WebPages
					.Include("Departamento")
					.Where(c => c.Id == id
						&& !c.Desativado
						&& !c.Excluido)
					.SingleOrDefault();
			}
		}

		public static WebPage Obter(string slug, int departamento)
		{
			using (var contexto = new IntranetContexto())
			{
				return contexto.WebPages
					.Include("Departamento")
					.Where(c => c.Slug.ToLower() == slug.ToLower()
						&& c.DepartamentoId == departamento
						&& !c.Desativado
						&& !c.Excluido)
					.SingleOrDefault();
			}
		}

		public static List<WebPage> ListarWebPages(int departamento)
		{
			using (var contexto = new IntranetContexto())
			{
				return contexto.WebPages
					.Where(c => c.DepartamentoId == departamento
						&& !c.Desativado
						&& !c.Excluido)
					.OrderBy(o => o.Ordem)
					.ToList();
			}
		}

		public static WebPage ObterPrincipal(int departamento)
		{
			using (var contexto = new IntranetContexto())
			{
				return contexto.WebPages
					.Where(c => c.DepartamentoId == departamento
						&& c.Principal
						&& !c.Desativado
						&& !c.Excluido)
					.SingleOrDefault();
			}
		}
	}
}
